package model.response

import org.simpleframework.xml.{Element, Root}

import scala.beans.BeanProperty

@Root(name = "xml", strict = false)
class WXPayRefundResponse {

  @Element(name = "return_code")
  @BeanProperty var returnCode:String = _

  @Element(name = "return_msg", required = false)
  @BeanProperty var returnMsg:String = _

  /** 以下字段在return_code为SUCCESS的时候有返回. */
  @Element(name = "result_code", required = false)
  @BeanProperty var resultCode:String = _

  @Element(name = "err_code", required = false)
  @BeanProperty var errCode:String = _

  @Element(name = "err_code_des", required = false)
  @BeanProperty var errCodeDes:String = _

  @Element(name = "appid", required = false)
  @BeanProperty var appid:String = _

  @Element(name = "mch_id", required = false)
  @BeanProperty var mchId:String = _

  @Element(name = "nonce_str", required = false)
  @BeanProperty var nonceStr:String = _

  @Element(name = "sign", required = false)
  @BeanProperty var sign:String = _

  @Element(name = "transaction_id", required = false)
  @BeanProperty var transactionId:String = _

  @Element(name = "out_trade_no", required = false)
  @BeanProperty var outTradeNo:String = _

  @Element(name = "out_refund_no", required = false)
  @BeanProperty var outRefundNo:String = _

  @Element(name = "refund_id", required = false)
  @BeanProperty var refundId:String = _

  @Element(name = "refund_fee", required = false)
  @BeanProperty var refundFee:String = _

  @Element(name = "settlement_refund_fee", required = false)
  @BeanProperty var settlementRefundFee:String = _

  @Element(name = "total_fee", required = false)
  @BeanProperty var totalFee:String = _

  @Element(name = "settlement_total_fee", required = false)
  @BeanProperty var settlementTotalFee:String = _

  @Element(name = "fee_type", required = false)
  @BeanProperty var feeType:String = _

  @Element(name = "cash_fee", required = false)
  @BeanProperty var cashFee:String = _

  @Element(name = "cash_fee_type", required = false)
  @BeanProperty var cashFeeType:String = _

  @Element(name = "cash_refund_fee", required = false)
  @BeanProperty var cashRefundFee:String = _

  @Element(name = "coupon_refund_fee", required = false)
  @BeanProperty var couponRefundFee:String = _

  @Element(name = "coupon_refund_count", required = false)
  @BeanProperty var couponRefundCount:String = _
}
